package P1600;

import java.util.Scanner;

/**
 * @author: zhouyang
 * @descrpition:
 * @time: 2019-10-12 11:11
 */
public class P1464_Function {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[][][] dp = new int[21][21][21];
        for(int i=0;i<21;++i){
            for(int j=0;j<21;++j){
                for(int k=0;k<21;++k){
                    dp[i][j][k] = Integer.MAX_VALUE;
                }
            }
        }
        while(true){
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int c = scanner.nextInt();
            if(a == -1 && b == -1 && c == -1){
                break ;
            }
            int res = invoke(a,b,c,dp);
            System.out.printf("w(%d, %d, %d) = %d\n",a,b,c,res);
        }
        scanner.close();
    }

    private static int invoke(int a, int b, int c,int[][][] dp) {
        if(a <= 0 || b <= 0 || c <= 0){
            return 1;
        }
        if(a > 20 || b > 20 || c > 20){
            return invoke(20,20,20,dp);
        }
        if(dp[a][b][c] != Integer.MAX_VALUE) return dp[a][b][c];
        if(a < b && b < c){
            dp[a][b][c] = invoke(a,b,c-1,dp)+invoke(a,b-1,c-1,dp)-invoke(a,b-1,c,dp);
            return dp[a][b][c];
        }else{
            dp[a][b][c] = invoke(a-1,b,c,dp)+invoke(a-1,b-1,c,dp)+invoke(a-1,b,c-1,dp)-invoke(a-1,b-1,c-1,dp);
            return dp[a][b][c];
        }
    }
}
